package com.example.exception;


import com.example.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 全局异常处理
 */
@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler
    public Result handleException(Exception e) {
        //打印异常日志
        log.error("程序出错啦~", e);
        //返回错误信息
        return Result.error("出错了,请联系管理员~");
     }

     @ExceptionHandler
    public Result handleDuplicateKeyException(DuplicateKeyException e) {
        //打印异常日志
        log.error("程序出错啦~", e);
        //返回错误信息
         String message=e.getMessage();
         int i= message.indexOf("Duplicate entry");//获取Duplicate entry所在位置
         String errMsg= message.substring(i);//截取该位置之后的字符串
         String[] arr= errMsg.split(" ");//拆分字符串
        return Result.error(arr[2]+"已存在~");
     }
}
